﻿using Microsoft.Extensions.Configuration;

namespace 读取配置文件
{
    internal class 配置文件初始使用
    {
        /// <summary>
        /// 配置文件初始使用
        /// </summary>
        /// <param name="args"></param>
        static void Main1(string[] args)
        {
            // 配置文件构造类
            ConfigurationBuilder builder = new ConfigurationBuilder();
            // 在类中添加本地的配置文件
            builder.AddJsonFile("config.json",optional: true,reloadOnChange: true);
            // 初始化配置文件
            IConfigurationRoot config = builder.Build();
            // 通过[字段名]直接使用，返回值是一个字符串
            string name = config["name"];
            // *推荐使用方式 通过GetSection方法使用，Value表示获取值
            string age = config.GetSection("age").Value;
            Console.WriteLine("age:" + age);
            Console.WriteLine("name:" + name);
            // 通过Get将配置文件映射为一个类
            Teacher teacher = config.Get<Teacher>();
            Console.WriteLine("teacher.age:"+teacher.Age);
            Console.WriteLine("teacher.Name:" + teacher.Name);
            Console.WriteLine("teacher.students.Name:" + teacher.Students.Name);
            Console.WriteLine("teacher.students.age:" + teacher.Students.age);
            // 映射配置文件中的某一个值为一个类
            Student student = config.GetSection("students").Get<Student>();
            Console.WriteLine("student.name:"+student.Name);
            Console.WriteLine("student.age:"+student.age);
            Console.ReadKey();
        }
    }
}
